Puyo Puyo Sun 64 (Aleck)

  A ridiculous trilingual variant of Puyo Puyo Sun 64 designed to run on SeTa's Aleck64 board.  Full voiceover for endings and optionally for Story Mode is provided.  Select "Cutscenes: Voice" in the options menu to enable it.  When not selected, the original typewriter sound is used instead.
  Japanese is exclusively in Japanese, Korean in Korean, and English borrows the Japanese voiceover but fully translates all text.  Settings are shared between all versions and can be changed in the Options menu.
  Special thanks (or blame?) to UltimatePenguin for translating the messages unique to the Korean version.


.:Patching:.
  Apply the xdelta patch using the similarly named xdelta.  The patch will only apply to a ROM in native (big-endian) byteorder.  Output will be a single big-endian file.

  Common Name:
  	Puyo Puyo Sun 64 (Japan)
  Internal Checksum:
  	94807E6B 60CC62E4
  SHA-1
  	CF79EC32E7E78B2CAD15B5B7DD763F578648B6C6
  SHA512
  	BCDC8CA93E5F0FBD1FD3C90F2A5439254079D63A0090313A4B2D13EC11C7F2C77D8CAC0EBE33DFE09395C6417FD5113B4F1BD1934ABC1BCC7FE7A3B2FADD4533


.:Hardware:.
  Depending on hardware used additional steps may be necessary after applying the patch.

  If used with an N64 adapter & flashcart or equivalent hardware no additional steps will be required.

  Modified "3D ROM PCB" or "E99" boards, dev carts, and E90 development hardware may require splitting the file into equal parts to fit on the chip layout and/or 16bit byteswapping.

  Most if not all "ALK-ROM01" boards are already configured for two Fujitsu MSP55LV128 128MBit SOP44 FlashROMs.  These require 16bit byteswapping the patched file and splitting it into two 128Mbit segments (0x1000000 bytes).  Place the lower half on the U3 chip and upper half on the U4.  The patch was tested on an E92 board using this option.

  "AS-COMROM" boards have a maximum capacity of 16Mbit, insufficient for this title.  "AS-COMROM2" boards are presumed to have a similar capacity.

  If your hardware does not provide a 4k or 16k eeprom (BU9580, BU9851, BK16D, etc.) it is highly recommended to set the "disable settings backup" DIP switch.


.:Controls & Output:.
  A dedicated Aleck input panel is required.  The number of controllers is automatically detected.  The menu to select 2P will automatically be suppressed if only one controller is present.
  Set the gate on the joystick to digital.  If set to analog, a warning will appear at boot.
  At minimum, each player requires Start and at least buttons 1 and 2 wired.  A third is recommended.  If wired, buttons 4, 5, and 6 mirror buttons 1, 2, and 3.  Rotation settings for each button can be set in the options menu.

  Stereo sound is implemented through the L/R RCA audio jacks on the E90/E92 board.  Make sure the left and right speakers are set correctly; sound from each player's field is only projected through their own speaker.
  If you are using a single speaker wired to the JAMMA harness, set the "Sound / 사운드 / サウンド" option to "Mono / 모노 / モノラル" in the Options Menu's "Gallery / 옵션 / ギャラリー" page, to the left of the "ALECK" page.

  Coin boxes with two slots are supported but coinage is shared between players 1 and 2.

  The Service switch will add credits.  This also completes any partial coinage.

  The Test switch will enter the options menu when pressed during the attract sequence, allowing you to change gameplay settings and test system configuration.  It cannot be accessed during gameplay to prevent state corruption.


.:DIP Switch Settings:.
SW1 8	8000	free play
SW1 7	4000	disable settings backup
SW1 6-5	3000	language
	65
	LL	0	Japanese
	LH	1	Korean
	HL	2	English
SW1 3-1	0700	coin settings
	321
	LLL	0	1 coin, 1 credit
	LLH	1	1 coin, 2 credits
	LHL	2	1 coin, 3 credits
	LHH	3	1 coin, 4 credits
	HLL	4	2 coins, 1 credit
	HLH	5	3 coins, 1 credit
	HHL	6	4 coins, 1 credit
	HHH	7	5 coins, 1 credit
SW2 8	0080	test / options menu
SW2 6	0020	enable music in attract
SW2 5	0010	disable continues
SW2 3-1	0007	default difficulty
	321
	LLL	0	normal
	LLH	1	beginner
	LHL	2	very easy
	LHH	3	easy
	HLL	4	hard
	HLH	5	very hard
	HHL	6	mania
	HHH	7	master

  When all switches are set OFF the configuration is:
    Japanese, 1 coin 1 credit, no music in attract, normal difficulty.


.:Options Menu:.
  The options menu consists of four pages.  Left and right scrolls between pages.
  Press button 1 to select an option, button 2 to unselect.  Most options can be changed by pressing left and right after selecting the option.

  ~ ALECK ~
  *) SYSTEM
     Runs tests on EEPROM, Aleck SDRAM, displays ROM timestamp (year, month, day), and shows currently set DIP switches.  Press any button to quit.
     If EEPROM can not be detected or is bad, will display NG.  Otherwise the capacity will be shown.  SDRAM will display either "OK" if the test is successful or "NG" if it is no good.  SDRAM is not required by this title.
  *) DISPLAY
     Convergence and color bar display.  Press any button to quit.
  *) INPUT
     Button and switch test.  Displays the port each controller is plugged into or NONE.
     Text changes from gray to white when the switch or button is pressed.  Press Test and Service together to quit.
  *) OUTPUT
     Press button 1 to send the selected signal to coin slot 1 or 2's coin counter or lockout coil to the JAMMA interface.  The signal continues until you select another option or leave the menu.
     Press button 2 or use the exit option to quit.
  *) RESET ADS
     Resets the COINS, CREDITS, and SERVICE counters displayed below.

  ~ Versus Mode Rules / 대전룰 / ふたりでぷよぷよのルール ~
  Allows changing gameplay in two player matches.  Does not affect single player games.
  *) Margin Time / 마진타임 / マージンタイム
     Maximum amount of time before pending nuisance puyos drop.
  *) Chain Limit / 연쇄수 / れんさしばり
     Maximum number of chains that will be counted when creating nuisance Puyos.
  *) Offsetting / 상쇄 / そうさい
     Uses either SUN offsetting, offsetting from Puyo Puyo Tsu, or no offsetting.
  *) Nuisance / 방해뿌요 / おじゃまぷよ
     Type of Puyo dropped when an opponent clears Puyos.
  *) Matches to Clear / 뿌요가 사라지는 수 / ぷよの消える
     Number of pieces that must be matched to clear them from the screen.
  *) Rate / 득점 / レート
     Puyo drop rate.
  *) Reset to Defaults / 보통룰로 한다 / ふつうのルールにする
     Sets all values above to their default values.
     Margin Time 192, no Chain Limit, SUN Offsetting, normal Nuisance Puyos, 4 Matches to Clear, Rate of 120.

  ~ Options / 감상실 / オプション ~
  *) Key Config / 키조작 / キーそうさ
     Selects between several different input settings.  Buttons A, B, C correspond to buttons 1, 2, 3, and these are shared with buttons 4,5,6 if wired.  Press button 1 to select the option, then use left and right on controllers 1 & 2 to select an option.  Press button 2 to quit.
  *) Difficulty / 난이도 / なんいど
     Single player difficulty level.  When a save is created this is set to the current DIP switch settings.  The setting shown in this menu is used in-game.
     From easiest to hardest:
       Beginner, Very Easy, Easy, Normal, Hard, Very Hard, Mania, Master
       실버, 매우쉽게, 쉽게, 보통, 어렵게, 매우어렵게, 매니어, 마스터
       シルバー, ベリーイージー, イージー, ノーマル, ハード, ベリーハード, マニア, マスター
  *) #Rounds / 대전수 / 対戦のかず
     Number of rounds a player must win in two player matches.  Default value is 2.
  *) Colors /  / いろちょうせい
     Allows selecting between several different colored Puyos.
  *) Characters / 대전 캐릭터 / 対戦キャラクター
     Choose VS / 선택가능 / えらびたい lets players select their characters in VS mode.
     Arle & Schezo / 아르르와 셰죠 / アルルとシェゾ skips the selection screen.  Player 1 is always Arle, player 2 always Schezo.
  *) Removal Effects / 뿌요 없애는 법 / ぷよの消えかた
     Animations used when Puyos are cleared.  Can be the same for all characters (Shared / 모두 같음 / みんなおなじ) or character-specific (Unique / 모두 다름 / みんなちがう).
  *) Cutscenes / 만담 데모 / まんざいデモ
     Changes how animated sequences in single-player games are handled.  Does not affect endings.
     When Off / 없음 / なし, cutscenes between matches are not shown.
     When On / 있음 / あり, cutscenes are used but not voiced.  A typewriter sound is used instead.  Endings are always voiced.
     When Voice / 음성 / ボイス is selected, all cutscenes are fully voiced.
  *) Chain Animation / 연쇄 애니메이션 / れんさカットイン
     Enables or disables animations when chains are made.  This has a direct, if minor, effect on gameplay speed.
  *) Exit / 옵션 끝 / オプションおわり
     Exits the menu and saves settings.  You can also leave the menu from any page by pressing button 2.

  ~ Gallery / 옵션 / ギャラリー ~
  *) Music / 음악 / おんがく
     Sound test for music.  Select the option with button 1, then use left and right to choose a number.  Press button 1 again to play the audio, or button 2 to unselect the option.
  *) Sound Effects / 효과음 / こうかおん
     Sound test for some (but not all) SFX.
  *) Voice / 음성 / ボイス
     Sound test for the in-game voice samples.  Does not play story mode voice.
  *) View Cutscene / 데모 감상 / デモかんしょう
     Allows you to view any of story mode's cutscenes.  Press button 1 to select the option, then use left and right to choose a cutscene.  Press button 1 again to play the cutscene.
  *) High Scores / 하이스코어 확인 / ハイスコアかくにん
     View the high scores.  Press button 1 to advance through each page; it will not advance on its own.
  *) Tutorial / 룰 설명을 본다 / ルールせつめいをみる
     Watch both parts of the rule summary shown during the attract sequence.  Note you cannot exit this summary until it plays all the way through.
  *) Sound / 사운드 / サウンド
     Select Stereo / 스테레오 / ステレオ or Monaural / 모노 / モノラル audio output.
     Note: if you are using a single speaker attached to the JAMMA interface, select Mono / 모노 / モノラル for proper operation.
  *) Delete Saved Data / 저장된 데이터 삭제 / データのしょきか
     Deletes all saved data, restoring default values.  Difficulty will be set to DIP switch settings.


.:Notes:.
  DIP settings:
  *) DIP switch options won't change until the system is reset.
  *) When freeplay is activated coin settings are ignored.
  *) Disabling settings backup prevents reading and writing to eeprom.  Default values are used for game options.  Any changes made to options through the options menu will be lost when the system is reset or turned off.
  *) Default difficulty is used when settings backup is disabled or when settings are reset to default values through the options menu.  The setting shown in the options menu is the setting in use.
  *) When the test / options menu switch is set the system will start in the options menu.  After exiting to normal gameplay, use the test button during the attract sequence to return to the options menu.  As previously mentioned, it can not be accessed from the title or during gameplay.
  *) When the DIP to suppress music during the attract sequence is set sound effects will still be heard.  However, the coin insertion sound may not play as a result.

  Options Menu:
  *) Coinage is not displayed in the Options menu or any of its submenus.  This is normal.
  *) All settings are shared in all languages.
  *) The System Test in the Aleck menu takes several seconds to run.  The screen will freeze during this time.  Couldn't keep the screen alive in the process.  Sorry.
  *) The options menu saves data only when you exit.  If power is reset prior to exiting no changes will be saved.
  *) The eeprom check in the System Test will erase all saved data.  The test is run even when the "disable settings backup" DIP is set.  Settings are only guaranteed to be restored if you exit the menu using button 2 or the exit menu option.
  *) There is no visual confirmation when an option is selected from the Output Test.  The signal for that option is constantly sent until another option is selected or you exit the menu.
  *) When leaving the options menu the "<L" will change to an "M".  It's a known bug caused by the way submenus detatch and not terribly critical.
  *) The "+" in the message "SERVICE+TEST EXITS" is region-dependant.  A casualty of hacked fonts ;*)

  Other:
  *) Credits and coinage are not preserved across resets.  They probably should be, but aren't.
  *) At the time of writing I did not have a fully functioning coin box.  Although the software should behave like other Aleck titles, coin timings are not hardware tested.  If you routinely experience coin errors or unread coins please contact me.
  *) Error messages for Coin Errors and joystick mode should return to the title screen in order to display, but there is a possibility it could cause the game to crash.  It shouldn't, but the possibility is there.  It's one of the hazards of hacking a prebuilt binary versus compiling it yourself.
  *) Internal GUID is ZPYA, a departure from the normal naming convention but Compile would have gotten confused with Capcom.  "Z" for an Aleck title, "PY" from its original GUID, "A" to indicate a multiregion NTSC release.

-Zoinkity
